package rootPackage.service;
import java.util.List;
import java.util.Map;

import org.slim3.datastore.Datastore;
import org.slim3.util.BeanUtil;

import rootPackage.meta.ProdottiMeta;
import rootPackage.meta.AziendeMeta;
import rootPackage.model.Prodotti;
import rootPackage.model.AziendeProdotti;
import rootPackage.model.Aziende; 


import com.google.appengine.api.datastore.Key;
import com.google.appengine.api.datastore.Transaction;


public class AziendeService {

    private AziendeMeta r = AziendeMeta.get();

    public Aziende get(Key key) {
        return Datastore.get(r, key);
    }

    public List<Aziende> getAll() {
        return Datastore.query(r).asList();
    }

    public void inserisci(String nome,String preparazione,String foto,String[] ingredienti) {
        Aziende ricetta = new Aziende();
        ricetta.setNome(nome);
        ricetta.setDescrizione(preparazione);
        ricetta.setFoto(foto);
        for(int i=0;i<ingredienti.length;i++)
        {
            ProdottiMeta ssm=new ProdottiMeta();
            Prodotti prod=ssm.entityToModel(Datastore.get(Datastore.stringToKey((ingredienti[i]))));
            AziendeProdotti prodric=new AziendeProdotti();
            prodric.getColtivati().setModel(ricetta);
            prodric.getProdotto().setModel(prod);
            Datastore.put(prodric);
            
        }
        Datastore.put(ricetta);
        }

    public Aziende update(Key key, Long version, Map<String, Object> input) {
        Transaction tx = Datastore.beginTransaction();
        Aziende aziende = Datastore.get(tx, r, key, version);
        BeanUtil.copy(input, aziende);
        Datastore.put(tx, aziende);
        tx.commit();
        
        return aziende;
    }

    public void delete(Key key) {
        Transaction tx = Datastore.beginTransaction();
        Aziende aziende = Datastore.get(tx, r, key);
        Datastore.delete(tx, aziende.getKey());
        tx.commit();
        
    }
    
}